package com.supermarket.business.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.supermarket.common.annotation.Excel;
import com.supermarket.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.io.Serializable;
import java.util.Date;

/**
 * 系统管理员对象 sys_admin
 *
 * @author ruoyi
 * @date 2025-07-21
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@TableName("sys_admin") // 对应数据库表名
public class SupermarketAdmin {

    /** 管理员ID */
    @Excel(name = "管理员ID")
    @TableField("admin_id") // 对应数据库字段名
    private Long adminId;

    /** 管理员姓名 */
    @Excel(name = "管理员姓名")
    @TableField("admin_name") // 对应数据库字段名
    private String adminName;

    /** 状态(0正常 1停用) */
    @TableField("status") // 对应数据库字段名
    private String status;

    /** 性别（M男 F女） */
    @Excel(name = "性别", readConverterExp = "M=男,F=女")
    @TableField("gender") // 对应数据库字段名
    private String gender;

    /** 年龄 */
    @Excel(name = "年龄")
    @TableField("age") // 对应数据库字段名
    private Long age;

    /** 创建者 */
    @TableField("create_by") // 对应数据库字段名
    private String createBy;

    /** 创建人id */
    @TableField("create_id") // 对应数据库字段名
    private Long createId;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("create_time") // 对应数据库字段名
    private Date createTime;

    /** 更新者 */
    @TableField("update_by") // 对应数据库字段名
    private String updateBy;

    /** 更新人id */
    @TableField("update_id") // 对应数据库字段名
    private Long updateId;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("update_time") // 对应数据库字段名
    private Date updateTime;

    /** 备注 */
    @TableField("remark") // 对应数据库字段名
    private String remark;

    /** 账户id */
    @TableField("sys_id") // 对应数据库字段名
    private Long sysId;
}
